Type stability in Julia: avoiding performance pathologies in JIT compilation

نویسندگان

چکیده

As a scientific programming language, Julia strives for performance but also provides high-level productivity features. To avoid pathologies, users are expected to adhere coding discipline that enables so-called type stability. Informally, function is stable if the of output depends only on types inputs, not their values. This paper formal definition stability as well stronger property groundedness, shows groundedness compiler optimizations, and proves correct. We perform corpus analysis uncover how these type-related properties manifest in practice.

برای دانلود باید عضویت طلایی داشته باشید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

biaccessibility in quadratic julia sets

در این رساله برای چندجمله ای های درجه ی دوم با مجموعه ی ژولیای همبند موضعی; ثابت خواهیم کرد: اندازه برولین مجموعه نقاط از دو سو دست یافتنی در چندجمله ای های درجه دو برابر با صفر است مگر چندجمله ای چبی شف که برابر با یک است. و برای چندجمله ای های درجه دوم با نقاط ثابت خنثی غیر گویا ثابت خواهیم کرد: 1)هر نقطه ی از دو سو دست یافتنی در حالت زیگل نهایتا به نقطه ی بحرانی و در حالت کرمر به نقطه ث...

Towards JIT compilation for IO language

IO [6] is a relatively new pure object-oriented language, providing dynamic features comparable with popular scripting languages like Python or Ruby. IO has simple but flexible syntax, allowing for metaprogramming at the syntax tree level. Some aspects of the syntax, such as operator and assignment reshuffling, make IO source code feel natural. Availability of runtime code modification and simp...

متن کامل

Avoiding pathologies in very deep networks

Choosing appropriate architectures and regularization strategies of deep networks is crucial to good predictive performance. To shed light on this problem, we analyze the analogous problem of constructing useful priors on compositions of functions. Specifically, we study the deep Gaussian process, a type of infinitely-wide, deep neural network. We show that in standard architectures, the repres...

متن کامل

Dynamic Look Ahead Compilation: A Technique to Hide JIT Compilation Latencies in Multicore Environment

Object-code virtualization, commonly used to achieve software portability, relies on a virtual execution environment, typically comprising an interpreter used for initial execution of methods, and a JIT for native code generation. The availability of multiple processors on current architectures makes it attractive to perform dynamic compilation in parallel with application execution. The major ...

متن کامل

Jit Vs Offline Compilers : Limits and Benefits of Bytecode Compilation

Just-in-time and ooine compilers are solutions which have been proposed to overcome Java's ineecient interpretation scheme. However, most compilers trade eeciency for portability. In this paper, we present an approach which reconciles portability and eeciency. We have designed and implemented a Java bytecode to C compiler, named Salsa, which incorporates both novel features and aggressive optim...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

ژورنال

عنوان ژورنال: Proceedings of the ACM on programming languages

سال: 2021

ISSN: ['2475-1421']

DOI: https://doi.org/10.1145/3485527